package com.cn.wanxi.util;

import java.sql.*;

/**
 * 1.加载驱动（什么情况下加载）？项目启动的时候,下载驱动包
 * 2.取得连接
 * 3.编译sql语句
 * 4.执行sql语句
 * 5.返回结果
 * 6.关闭连接()
 */
public class JDBC {
    private static final String URL = "jdbc:mysql://121.199.55.96:3306/canyin04?useUnicode=true";
    private static final String USER = "canyin04";
    private static final String PASSWORD = "123456";

    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");//引号里面为驱动的名称
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    //    安装正常情况下：取得驱动连接应该只有一个连接 ，所以这里应该写一个单例模式
    private static Connection getConnection() {

        Connection conn = null;
        try {
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    //    数据库里面的操作一般四个，CURD  返回数据，查询一般返回的是ResultSet，
//    新增，修改，删除，返回的是影响数据的条数(int)

    /**
     * @param sql
     * @return
     */
    public static ResultSet query(String sql) {
        try {
            PreparedStatement preparedStatement = getConnection().prepareStatement(sql);
            return preparedStatement.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 新增，修改，删除
     *
     * @param sql
     * @return
     */
    public static int update(String sql) {
        try {
            PreparedStatement preparedStatement = getConnection().prepareStatement(sql);
            return preparedStatement.executeUpdate();//影响的条数
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }
}
